Скрыть пустые категории? - Реальность!

ну да, скрытие пустых категорий именно на витрине, для покупателей.

если нужно скрывать непустые категории, т.е. категории, где есть товары, но у товаров нулевые остатки, то для этого скрипту придется посчитать остатки по всем товарам, т.е. проход по всей базе, что в динамике сильно замедлит открытие страниц.

Если уж совсем правильно делать, то стоит скрывать все дерево пустых категорий (включая и родительские), если внутри у товаров нулевые остатки.

Мы делаем скрытие категорий с нулевыми остатками для магазинов, что используют нашу выгрузку, но не рискну предлагать как отдельное решение (трудоемко вычленять из общей логики выгрузки).