Идея возникла подменить строку запроса, для этого создал блок показывать только в категориях с содержанием:
{if $categories_to_select} <input type='hidden' name='search_with_change_category_ability' value='yes'> {else} <input type='hidden' name='search' value='1'> {/if} <div align="left"> {if $params} {section name=i loop=$params} <ul name='param_{$params[i].optionID}' class="sectb"> {section name=j loop=$params[i].variants} <li><a href='index.php?categoryID={$categoryID}&search=1&search_name=&search_price_from=&search_price_to=¶m_{$params[i].optionID}={$params[i].variants[j].variantID}&search_in_subcategory=1&advanced_search_in_category=1' {if $params[i].value == $params[i].variants[j].variantID}selected{/if}>{$params[i].variants[j].value|default:""}</a></li> {/section} </ul> {/section} {/if} </div>