Mi propuesta tal vez requiera un poco de depurado o de ajuste de los INNER JOIN, pero... ¿has probado hacer algo así?:
Código sql:
Ver originalSELECT
C.idClient,
C.anuncio,
C.alta,
CL.fecha_de_nacimiento,
CL.busco_desde,
CL.busco_hasta,
C.onLine,
C.navigationMode,
P.archivo,
C.usuario,
CL.poblacion,
CL.provincia,
P.paisES pais,
(IF(R.idFormPregunta ='1' AND valorClientRespuesta IN(2), 1, 0) +
IF(R.idFormPregunta ='2' AND valorClientRespuesta IN(2), 1, 0) +
IF(R.idFormPregunta ='7' AND valorClientRespuesta IN(2), 1, 0) +
IF(R.idFormPregunta ='8' AND valorClientRespuesta IN(2), 1, 0) +
IF(R.idFormPregunta ='9' AND valorClientRespuesta IN(1), 1, 0) +
IF(R.idFormPregunta ='10' AND valorClientRespuesta IN(1,2), 1, 0) +
IF(R.idFormPregunta ='11' AND valorClientRespuesta IN(1,2), 1, 0)) totalResultado
FROM
clients C INNER JOIN photos P USING(idClient)
INNER JOIN clients21 CL USING(idClient)
LEFT OUTER JOIN respuestas21 R USING(idClient)
INNER JOIN paisesISO P ON CL.pais = P.acro
WHERE
C.idClient NOT IN ('') AND
C.idClient <>2621 AND
P.tipo = 1
GROUP BY clients.idClient
ORDER BY totalResultado DESC;