La especificación de SQL establece que las uniones explícitas se realizan antes que las uniones implícitas. Esta es una unión implícita:
FROM table1 t1, table2 t2 WHERE t1.id=t2.t1id
Esta es una unión explícita:
FROM table1 t1 JOIN table2 t2 ON (t1.id=t2.t1id)
Este bit de código:
categories c
LEFT JOIN photos p
ON p.referencekey = i.key
es una combinación explícita y se ejecuta primero. Tenga en cuenta que, en este punto, la tabla con alias como i aún no se ha visto, por lo que aún no se puede unir. Tenga en cuenta que MySQL solucionó este comportamiento en 5.2, creo, y esta consulta tampoco funcionará allí.