Вообще-то ошибка показывает на совершенно другую проблему.
В вашем коде:
FROM " . DB_PREFIX . "product_to_category ptc LEFT JOIN . DB_PREFIX . "category_description"
Тот же фрагмент в тексте ошибки:
FROM oc_product_to_category ptcoc_category_description
Куда делся
LEFT JOIN oc_
?
А проблема с пустым $product_id решается элементарно. Достаточно предварительно проверять переменную и заменять её на фиктивное значение, например -1.