Disabling hash join in a procedure
It depends on how you did it.
With a plain SET, you would change the parameter for the whole session.
With SET LOCAL, you would change the parameter for the complete database transaction.
The best way would be to modify the procedure so that the setting is only active for the duration of the execution of the procedure:
ALTER PROCEDURE procname SET enable_hashjoin = off;

Let me add that this is only a last ditch measure: it would be much better if you could fix the bad row count estimates that lead to the bad choice of join strategy.