Esa consulta la podrias sacar usando un left join, y bueno como consejo usa joins explicitos en lugar de joins implicitos
Código SQL:
Ver originalSELECT empresas.nombre, SUM(calificaciones.puntaje)/COUNT(calificaciones.puntaje) AS rating FROM `empresas` AS t1
LEFT JOIN `calificaciones` AS t2 ON (t1.id=t2.empresa)
WHERE t2.activa = '1' AND t2.categoria = 'food'
GROUP BY empresas.id ORDER BY empresas.abierto DESC, rating DESC