Hai bisogno di due join:
SELECT
product.productID,
category.categoryID,
product.name,
product.price,
category.name
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
Se un prodotto potrebbe non essere in nessuna categoria e desideri comunque restituirlo, cambia JOIN in LEFT JOIN in entrambi i punti.
Un approccio alternativo:
SELECT
product.productID,
product.name,
product.price,
GROUP_CONCAT(category.name)
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
GROUP BY product.productID
Tuttavia, potrebbe essere meglio utilizzare solo due query invece di inserire più valori in una singola cella.