A especificação SQL afirma que as junções explícitas são executadas antes das junções implícitas. Esta é uma junção implícita:
FROM table1 t1, table2 t2 WHERE t1.id=t2.t1id
Esta é uma junção 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
é uma junção explícita e é executada primeiro. Observe que, neste ponto, a tabela alias como i ainda não foi examinada, portanto, ainda não pode ser unida. Observe que o MySQL corrigiu esse comportamento em 5.2, acredito, e essa consulta também não funcionará mais lá.