We have a series of environments; Let's call them Development, Integration, Business and Production.
As a rule, we do not let master get deployed beyond Development, meaning any code which is to be tested by the business in the Integration or Business environments must have a pull request approved.
The problem arises when we want to test code in the Integration environment, for example, but cannot allow the code to be merged into master. Wanting to test in that environment might be for any number of reasons, including more Production-quality data, more data or more servers, etc.
This is, of course, a model which a lot of organisations follow, but I surmise that a different deployment path, which ends at Business and not Production would be a safe alternative for deployment of non-master code.
Is it wise to ensure that non-master branches never go beyond Development?