Lo que entendí es que querés ordenar por id en forma ascendiente, y status en forma descendiente, pero con los valores NULL apareciendo siempre como el mayor.
ORDER BY admite múltiples parámetros. Para ordenar de la manera que querés, basta con hacer
ORDER BY id, status DESC.
El problema que vas a tener es que
NULL es siempre el menor, por lo que al ordenar de manera descendiente te va a aparecer al final de la lista, y no al principio.
Para resolver esto se usa una especie de 'hack': Representando los valores en una recta, los NULL siempre tienden a menos infinito, por lo que invirtiendo el signo de status y luego invirtiendo la posición de la recta, los valores de status quedan en su posición original, pero los NULL ahora tienden a más infinito.
Teniendo el data set:
Código MySQL:
Ver original+----+--------+
+----+--------+
| 1 | 5 |
| 1 | 10 |
| 2 | 15 |
| 2 | 7 |
+----+--------+
Probamos ordenar primero id en forma ascendiente, y luego status en forma descendiente
Código MySQL:
Ver original+----+--------+
+----+--------+
| 1 | 10 |
| 1 | 5 |
| 2 | 15 |
| 2 | 7 |
+----+--------+
El problema es que las celdas con valores
NULL aparecen abajo de todo. Esto se soluciona poniendo un menos antes del campo a ordenar e invirtiendo el orden
Código MySQL:
Ver original+----+--------+
+----+--------+
| 1 | 10 |
| 1 | 5 |
| 2 | 15 |
| 2 | 7 |
+----+--------+
Como ahora tenemos dos ORDER BY ... ASC, podemos agruparlos con una coma
Código MySQL:
Ver original+----+--------+
+----+--------+
| 1 | 10 |
| 1 | 5 |
| 2 | 15 |
| 2 | 7 |
+----+--------+