Делай LEFT JOIN таблицы на саму себя и выбирай/сортируй как тебе надо.
Примерно так
SELECT w.* , IF(IFNULL(h.is_work, 0) = 0, w.is_work, h.is_work) as any_is_work
FROM table as w
LEFT JOIN table as h
ON w.id = h.trainer_id
where w.trainer_id is not null
ORDER BY any_is_work