Analicemos bien el caso: 
Este código:    
Código sql:
Ver original- SELECT users.username, MAX(photos.id) AS id  
-        FROM users INNER JOIN photos  
-               ON photos.user_id = users.id  
- WHERE users.STATUS = 0 AND photos.STATUS = 0 
- GROUP BY users.id 
- ORDER BY MAX(photos.id) DESC 
- LIMIT 0,6; 
Esto te devuelve todos registros de usuarios y el ID de la foto de cada uno que sea el mayor para cada usuario.id. Si lo que deseas es que esas photo.id se ordenen, 
no lo puedes hacer en la misma sentencia, porque debes convertir la columna devuelta por la consulta en una columna real y 
no en el resultado de una función agregada. Eso se logra poniendo el resultado de esta consulta dentro de otra, como 
subconsulta:     
Código sql:
Ver original- SELECT username, id 
- FROM ( 
-           SELECT users.username, MAX(photos.id) AS id  
-           FROM users INNER JOIN photos  
-               ON photos.user_id = users.id  
-           WHERE users.STATUS = 0 AND photos.STATUS = 0 
-           GROUP BY users.id ) Tabla1 
- ORDER BY id DESC 
- LIMIT 0,6; 
De esta forma, la consulta se transforma en una tabla en memoria, y de esa tabla se toma el resultado de la consulta principal. Como la consulta principal opera sobre la tabla de memoria, ya toma datos prefiltrados y es muchísimo más rápida. 
Pruébalo.