Yes, you are right. this is the way to do this.
First I created a public tag and then in the routes.yaml I added a filter to the / (root) collection with a. minus, so in the homepage I will not showing the posts tagged with this tag.
collections:
/:
permalink: /{slug}/
template: index
filter: tag:-tagiwanttofilter
And after that I created a new collection to create a special URL for this tag creating a new collection so all the posts tagged with this specific tag will have a special URL:
/tagiwanttofilter/:
permalink: /tagiwanttofilter/{slug}/
template: tag
filter: tag:tagiwanttofilter
data: tag.tagiwanttofilter
And it works perfectly fine. Hope it helps.
postdata: it would be fantastic if this work with a private tag as well, but for now it is OK.