Sí, acabo de probarlo en mi sitio de desarrollo local y encuentro lo mismo. Creo que el problema radica en la lógica que se utiliza aquí:
Cambiar esa línea a topics = topics.where("topics.category_id NOT IN (?)", remove_category_ids) parece solucionar el problema con las categorías que se han añadido a la configuración digest_suppress_categories, pero será necesario añadir alguna lógica para gestionar las categorías silenciadas. Quizás algo como:
topics = topics.where("topics.category_id NOT IN (?)", remove_category_ids).where("topic_users.notification_level != (?)", TopicUser.notification_levels[:muted])