Se você
LEFT JOIN
as duas tabelas, você pode usar o ORDER BY
cláusula para fazer o que você precisa:SELECT *
FROM
questions
LEFT JOIN results
ON results.q_id = questions.id
ORDER BY
ISNULL(results.id) DESC, results.created ASC
LIMIT 1
Isso colocará todas as perguntas que não tiverem resultados no topo da lista, seguidas por uma lista de todas as perguntas com resultados (na ordem "mais antiga primeiro"). O
LIMIT 1
fará com que ele exiba apenas o resultado principal - que deve corresponder ao que você precisa.