Currently you can allow chat for people in Trust Level 1 and above but there is no way to disallow chat for certain groups.
If we have a troublemaker who we believe is sending chat messages to people and being disruptive, but we don’t mind them posting publicly, there is no way to disable chat for that user (without putting them on trust level 0 which causes other issues).
I think currently the easiest solution is using Discourse Dynamic Groups to create a group of “chat allowed users” based on the trust level 1 group while excluding those you added to a “not allowed to chat” group.
So the setting for who is allowed to chat (or use DMs) is no longer TL1 but the dynamic group of TL1 without bad actors.