Eu descobri uma maneira que acomoda mecanismos de banco de dados que funcionam de qualquer maneira (null como valor mais alto ou mais baixo) usando
extra
, fazendo o null verificar um booleano, e ao classificar booleanos false < true
parece ser universal:qs = qs.extra(select={'null_start': "publish_start is null"},
order_by=['null_start', '-publish_start'])