$text_compare и $text_wishlist просто числами?
Тогда:
<?php if ($rev_srav) { ?>
<li <?php echo $text_compare ? '' : 'class="hidden"';?>>
<a href="<?php echo $compare; ?>" class="dropdown-toggle"><span id="compare-total"><?php echo $text_compare; ?></span></a>
</li>
<?php } ?>
<?php if ($rev_wish) { ?>
<li <?php echo $text_wishlist ? '' : 'class="hidden"';?>>
<a href="<?php echo $wishlist; ?>" class="dropdown-toggle"><span id="wishlist-total"><?php echo $text_wishlist; ?></span></a>
</li>
<?php } ?>
И не забудьте при добавлении/удалении из избранного проверять количество товаров и добавлять/удалять класс
UPD. В вашем случае $text_compare и $text_wishlist содержат всю разметку, поэтому они всегда будут проходить условие.
В контроллере добавьте переменную $compare_count и $wishlist_count, которые содержат просто числовые значения счетчиков сравнения и избранного. И добавляйте любой класс для , например class="wishlist0".
Тогда на уровне стилей можете скрывать:
.wishlist0 sup {
display: none;
}