Hola de nuevo:
En realidad no entiendo mucho la lógica de la consulta... el CASE-WHEN me dice que sólo te interesan aquellos usuarios que tengan asignada la tarea 84... los demás no los consideras, pues le asignas un NULL directamente... hay varias formas de resolver la consulta una sería con dos subconsultas y un UNION... sería más o menos así:
Código MySQL:
Ver original -> tc.task
-> LEFT JOIN tasks_collaborators tc
ON c.ID
= tc.collaborator
-> LEFT JOIN tasks_collaborators tc
ON c.ID
= tc.collaborator
-> FROM tasks_collaborators tc2
-> WHERE tc.collaborator
= tc2.collaborator
AND -> tc2.task = 84);
+------+----------------+------+------+
| ID
| name
| user | task
| +------+----------------+------+------+
| 9 | Administracion | 4 | 84 |
| 12 | Raimundo | 4 | 84 |
| 13 | Compras
| 4 | NULL | | 15 | Proveedor
| 4 | NULL | | 16 | Yuraima Salas
| 4 | NULL | | 17 | Sandra
| 4 | NULL | | 18 | Contabilidad
| 4 | NULL | +------+----------------+------+------+
en la primer parte sólo considera los usuarios que tienen la tarea 84, en la seguna parte todos aquellos que no tienen asignada la tarea (por eso el NOT EXISTS)... en realidad no sé sí es la mejor opción, es cuestión de que sigas investigando un poco para ver si encuentras algo más óptimo.
Saludos
Leo.