Если вам не нужно возвращать счет или maxscore, вы можете просто сравнить два выражения подзапроса:
SELECT quizSession.id, IF(
(SELECT sum(score)
FROM jos_jquarks_quizzes_answersessions
WHERE score IS NOT NULL AND quizsession_id = quizSession.id AND status <> -1) =
(SELECT count(distinct question_id)
FROM jos_jquarks_quizzes_answersessions
WHERE quizsession_id = quizSession.id), "Pass", "Fail") AS status
FROM quizSession
Если вам нужны все столбцы, вам, вероятно, лучше написать подзапросы как объединения:
SELECT quizSession.id, sum_subquery.score_sum AS score, max_subquery.max_score,
IF(sum_subquery.score_sum = max_subquery.max_score, "Pass", "Fail") AS status
FROM quizSession
INNER JOIN (
SELECT quizsession_id, sum(score) AS score_sum
FROM jos_jquarks_quizzes_answersessions
WHERE score IS NOT NULL AND status <> -1
GROUP BY quizSession_id
) AS sum_subquery ON quizSession.id = sum_subquery.quizsession_id
INNER JOIN (
SELECT quizsession_id, count(distinct question_id)
FROM jos_jquarks_quizzes_answersessions
GROUP BY quizsession_id
) AS max_subquery ON quizSession.id = max_subquery.quizsession_id