This issue is also addressed in the ideas forum post Merging Contacts shouldn’t re-enroll the unified contact into a workflow.
One workaround I have suggested in the past is to keep a static list for merged contacts and add anyone you would like to merge to the list. You can then add that list as a suppression list for all of the active workflows that the secondary contact has ever enrolled in. The suppression list can then be removed after the contacts have been merged.
Suggestion for the Product Team: Is it possible to block workflow reenrollment based on contact ID or secondary email?