Approach to save many to many relationship in case select all values
If you use a flag in the products table assume it's a bit data type and set to True which means that product is related to all countries, no doubt you will have less record in the database but your query becomes a bit complex.

If you go with the first approach using the regular joins on foreign keys would also solve the problem with simple queries.

I would prefer to go with a proper many-to-many relationship approach with proper indexes, avoid updates and simple query joins. However if the need arise of having a helper column to say this product is applicable in all countries then I would add it but only if the issue arise.