Solo 1 minuto dopo aver posto la domanda ho trovato la mia risposta. Nella clausola order by use case per fare in modo che i valori nulli abbiano un valore superiore a qualsiasi altra cosa:
ORDER BY (CASE WHEN districts.id IS NULL then 1 ELSE 0 END),districts.name, schools.name;