El tema de que no te aparezcan los que suman 0 es porque no existen datos en la tabla de compras. Tu sql es:
Código:
SELECT productos.Id,SUM(compras.Compras) AS Compras
FROM productos left join compras on compras.Producto=productos.Id
GROUP BY productos.Id
Un saludo.