It would only affect processes that needed to send messages to those message queues and that didn’t have sufficient private or adopted authority. If you can predict or determine everything that will need access in the future, *PUBLIC *EXCLUDE seems viable.
I suspect that that might be difficult.
Further, with *PUBLIC *EXCLUDE, then there won’t be any ‘cleaning’ either… unles alternative authority is available. And if authority is available, then *PUBLIC *EXCLUDE won’t help much.
As a general suggestion, create a profile named maybe LOWAUTH that no added authorities at all. Then create a TESTAUTH message queue, perhaps in QGPL. Sign on as LOWAUTH and see what you can do to TESTAUTH. Can you send to it? Can you read the queue? Can you delete individual messages?
Then use EDTOBJAUT to start removing various object and data authorities. E.g., remove *OBJEXIST from *PUBLIC or remove *DELETE. Can LOWAUTH now delete the queue? …delete messages? …send messages?
A little experimentation is easy and may help put you on solid footing.
Beyond that, why were messages being deleted? Don’t you have standard system CLEANUP options set and running? Maybe that’s where you should start looking. Use GO CLEANUP if you need to review some possibilities.