I’ve taken a look through the code (thanks for your PM with extra information) and unfortunately I can’t see anything that would cause this behaviour.
If you’re comfortable with the command line you could run this in a rails console:
topic = Topic.find(12345) # your id goes here
topic.category_users
.where(notification_level: CategoryUser.notification_levels[:watching_first_post])
.pluck(:user_id)
It should return a list of the user ids who will get an email if they are watching the first post in that topic’s category.