That table confused me for a long time. It is defined here: discourse/lib/badge_posts_view_manager.rb at main · discourse/discourse · GitHub. It is a postgres view. My understanding of a view is that it is a name that is assigned to a query.
Posts in the badge_posts view are visible posts that are not in read restricted categories. When you moved your topics to a private category, you removed their posts from the badge_posts view.