Сделал так
// $categories = explode('_', $this->request->get['path']);
// print_r($categories);
$category_link;
// получаем ID категории для генерации правильного URL и сортируем по родительской категории, чтобы родительская шла всегда первой
$categories_for_url = $this->db->query("
SELECT `t1`.`category_id` FROM `" . DB_PREFIX . "product_to_category` as `t1`
LEFT JOIN `" . DB_PREFIX . "category` as `t2` ON `t1`.`category_id` = `t2`.`category_id`
WHERE `t1`.`product_id`='" . $product_id . "'
ORDER BY `t2`.`parent_id` ASC
");
if($categories_for_url->num_rows > 0)
{
$category_id = '';
foreach($categories_for_url->rows as $category)
{
$category_id .= $category['category_id'] . '_';
}
$category_id = trim($category_id, '_');
// echo $category_id;
// echo $this->url->link('product/product', 'path=' . $category_id . '&product_id=' . $product_id);
// echo $this->url->link('product/product', 'path=' . $category_id);
$cat_info = $this->model_catalog_category->getCategory($category_id);
$category_link = '<a href="'.$this->url->link('product/product', 'path=' . $category_id).'">'.$cat_info['name'].'</a>';
// echo $category_link;
}