Верно, когда элемент скрыт с помощью CSS, он всё ещё считается дочерним, потому что продолжает существовать в HTML.
CSS сейчас в основном может с этим справиться (за исключением Firefox, который ещё не поддерживает :has)… Возможно, стоит добавить в плагин корректную опцию «скрыть 0 голосов в списке тем», чтобы полностью избежать этой проблемы… но пока это решение сработает.
.vote-count-0 {
display: none; // скрыть счётчик с 0 голосами
}
.discourse-tags:has(.vote-count-0) {
.discourse-tag:nth-last-child(2):after {
display: none; // скрыть запятую перед предпоследним тегом
}
}