1 - ACTL to set a flag when the group were changed
2- Use a filter on modify to read this flag. If it is filled display an errror mesage.
3 - Remeber to create an alternative flow, maybe the staff member change the group value and then set it back again. So in this cas you will need to clean the flag.
If I remember as well, exists two fields (one is hide) to use the group id values or name (i do not remember), so maybe you can use them on your filter. If works, you will no need to create the first flow I said.
why do you have to make z1D_Note mandatory? If goal is to ensure that reasoning for group change is documented in Work Info (and leaving aside the possibility that some users may be doing that on their own), wouldn't it be better to check whether a different group was selected (or if selection was cleared) early during Modify workflow and force user to provide explanation on the spot by opening popup window and using its contents to submit Work Log? You could also add new value to selection Work Log Type (e. g. Reassignment) to distinguish such records and, if necessary, allow users to submit them without prompting (e. g. no Work Info of appropriate type since last modification of monitored field would require providing an explanation), but that may result in too many records if users are diligent in submitting Work Info, but indecisive about proper group to the point that they select group more than once (and submit Work Info for each selection) before saving incident.
As to not being able to compare transaction and database value of attribute within active links, there is a workaround for that (may be only partial if multiple instances of the same incident record are being modified "simultaneously", unless standard warning in such cases is modified to accommodate this requirement) -- use active link triggered when record's data is fetched from database (e. g. on Window Loaded and Display) to populate temporary (Entry Mode set to Display) field with initial value so that during Modify workflow it can be compared to transaction's value of field (this also makes it possible to recognize any number of its changes followed by return to initial value as no change, if desired).
In order to make z1d_note mandatory at the time of assigned group change you have to write AL insted of Filter to validate the z1d_note field whether this is NULL or having value. This is because the AL for submitting the Workflow is runs at execution order 1 which is an AL and AL fires before filter processing.
So just check for the AL logs and find out the Active link which is responsible for submitting the worklog values to work info form. once you find it out then write a new AL to validate the z1d_notes field before the worklog submission AL works.