ищите/проверяйте, что показывают данные переменные
!!! смотреть возможно надо будет и их модифицированные файлы:
здесь - \catalog\controller\product\category.php
$filter_data = array(
'filter_category_id' => $category_id,
'filter_filter' => $filter,
'sort' => $sort,
'order' => $order,
'start' => ($page - 1) * $limit,
'limit' => $limit
);
и здесь - \catalog\model\catalog\product.php
if (isset($data['start']) || isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
}
if ($data['limit'] < 1) {
$data['limit'] = 20;
}
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
}
так же может у Вас фильтр может изменять запрос, то тогда в нем надо искать причину.