MySQL Join with empty table
You first have an (implied) CROSS JOIN between mass_categories and mass_groups, then LEFT JOIN to mass_prices. But the left join is using the id (group_id) only from one of the two tables for the join condition:

FROM 
    mass_categories mc, mass_groups mg   -- the CROSS join
    LEFT JOIN mass_prices mp
      ON  mp.id_group = mg.id             -- LEFT join condition 


Use both the group and the category id (and an explicit CROSS JOIN to not get a different error):

FROM 
    mass_categories AS mc
    CROSS JOIN                         -- doesn't byte 
    mass_groups AS mg
    LEFT JOIN mass_prices AS mp
      ON  mp.id_group = mg.id          -- LEFT join condition
      AND mp.id_categorie = mc.id 
;




note:

You could still use the (implicit CROSS join) comma operator if you want but that would just make your life difficult. The two operators have different precedence, so you'd need to add parentheses as well:

FROM 
    ( mass_categories AS mc , mass_groups AS mg )
    LEFT JOIN mass_prices AS mp
      ON  mp.id_group = mg.id          -- LEFT join condition
      AND mp.id_categorie = mc.id 
;