SELECT t1.slug, COALESCE(t2.lang, t3.lang, 'language not found') AS lang
FROM
(
SELECT DISTINCT slug
FROM tbl
) AS t1
LEFT JOIN tbl AS t2
ON t1.slug=t2.slug
AND t2.lang = 'ru'
LEFT JOIN tbl AS t3
ON t1.slug=t3.slug
AND t3.lang = 'en'
select * from pages ORDER BY FIELD (lang,'uk','ru');
Помню там сложность была, то что отсортированное поле уходит в конец.
Поэтому есть смысл готовить строку 'uk','ru' заранее, подставляя деофлтный язык в конце.