sorry, the second query:
$query_ProductMenu = sprintf("SELECT * FROM products WHERE ProductLive <> 0 AND COALESCE((SELECT GroupingID FROM productoptions WHERE productoptions.ProductID = products.ProductID LIMIT 1), ProductID) = ProductID AND ProductCategoryID = %s ORDER BY CategoryName", GetSQLValueString($catParam_ProductMenu, "int"));
should be:
$query_ProductMenu = sprintf("SELECT * FROM products WHERE ProductLive <> 0 AND COALESCE((SELECT GroupingID FROM productoptions WHERE productoptions.ProductID = products.ProductID LIMIT 1), ProductID) = ProductID AND ProductCategoryID = %s ORDER BY ProductName", GetSQLValueString($catParam_ProductMenu, "int"));