When someone joins my discord, they have permission on which channels they want to see related to the role, that they will be choosing. So what I do is that I make it so the role @everyone cannot see any channels but the roles that the members picks are able to see the channels they have seen, but sometimes there are members that breaks some rules and I give them a role which they cannot see any channel (role is called “no channel”) this “no channel” role is on top of every role, but they are still able to see the channels that they have selected the roles they wanted.
What i suggest is that, if there is a role thay is higher than all the roles then that role should have the permission to make the members do what the role wants so for me, the “no channel” means that they cannot see any channel and because this role is higher than all roles, the members should but should not see any channel, even if they have chosen a role that they want to see a specific channel. The “no channel” role should have more higher up then all roles because that role is on the top. Its really hard to explain but if you got any further questions, let me know on the comments below.