Sin entrar a discutir la estructura de la base. Deberías decirnos si esa dolencia es un campo de tipo numérico o varchar, si permites o no null. También si guardas más de una dolencia en ese campo, separando con comas, etc. No obstante, te aconsejo que pruebes esto.
si es varchar
SELECT idcliente where dolencia like "";
si es numérico y no permites null:
SELECT idcliente WHERE dolencia = 0;
si es numérico y permites null:
SELECT idcliente WHERE dolencia IS NULL;
cualquiera de esas consultas, según la naturaleza del campo, debería mostrarte los que no sufren ninguna dolencia. Pero tendrías que precisarnos si en ese campo queda en blanco o vacío, o si permites NULL.
Para buscar los que sufren alguna dolencia te bastará algo como esto
SELECT idcliente WHERE dolencia = 3;
Imagino que esa estructura será la que es por alguna razón: sólo una dolencia por cliente.
Cita: ¿Como debería ser la query para que me agrupara los usuarios que tienen una dolencia concreta pero me listara TODOS los usuarios que no tienen dolencia?
busca así:
SELECT idcliente, IF(dolencia = "", "sin dolencia", dolencia ) dolencia FROM tabla WHERE dolencia = 3 OR dolencia LIKE "" ORDER BY dolencia DESC, idcliente;
Pero tendrías que darnos datos sobre el tipo de campo que es dolencia y los datos que sueles introducir.
Esa es la idea.