Dopiero 1 minutę po zadaniu pytania znalazłem odpowiedź. W klauzuli order by użyj przypadku, aby wartości null miały wyższą wartość niż cokolwiek innego:
ORDER BY (CASE WHEN districts.id IS NULL then 1 ELSE 0 END),districts.name, schools.name;
Dopiero 1 minutę po zadaniu pytania znalazłem odpowiedź. W klauzuli order by użyj przypadku, aby wartości null miały wyższą wartość niż cokolwiek innego:
ORDER BY (CASE WHEN districts.id IS NULL then 1 ELSE 0 END),districts.name, schools.name;