Who issues IDs for this registry? This is the hard problem. If it is totally open access, then a big random number generator works great and is already available in the form of private key generators. If it is restricted access, then you are right back to the centralization problem that allow some centralized actor to censor some subset of users.
Of course, being able to prove set inclusion in some centralized list without giving third parties details about you is great, but you need to get government buy-in for most of the value here (since that is usually where identity comes up), and awesome technical solutions won’t solve that problem and it is rare that governments choose the right solution to problems, usually they just choose the most easily sold solution.
Once you have a list of IDs (could just be numbers), proving that you know a secret associated with an item in that list is one of the simplest problems to solve with a ZK circuit. Alternatively, users could get something like a JWT signed by the ID issuer that attests to your inclusion in the list, no need for ZK anything here and third parties won’t know who you are, just that you are attested by the ID issuer.