Para esta pergunta em particular
max(language)
deve funcionar porque d é menor que e. EDIT (Solução que não vai quebrar):
Adicione
max(case language when 'default' then 0 else 1 end)
Edit2 (Ainda melhor):
Adicione
max(case language when 'english' then 1 else 0 end)
para que você nem obtenha valores duplicados se adicionar mais idiomas ao seu in()
seção EDITAR Nº. 2:
Como prometi, aqui estou eu com uma nova mente de segunda-feira e tenho a consulta certa para suas necessidades :-)
Tentar
SELECT value,
CASE group_concat(language)
WHEN 'default' then 'default'
ELSE LTRIM(REPLACE(group_concat(language SEPARATOR ' '),'default',''))
END as language,
externID
FROM demo
WHERE externID = 10
AND language in ('default','english')
GROUP BY value;
Explicação:GROUP_CONCAT e LTRIM