It gets easier if you do not CALL the program but instead you wrapped a
command around it.
I'm guessing you didn't. And since you probably didn't and do not want to
change those existing programs it probably doesn't make sense to retrofit
So, programmatically, without any disruption, try this:
DCL VAR(&MYPARM) TYPE(*CHAR) LEN(10)
DCL VAR(&WORKVAR) TYPE(*CHAR) LEN(10)
IF (%address(&myparm)=*null) then(do)
chgvar var(&workvar) value(' ')
CHGVAR VAR(&WORKVAR) VALUE(&MYPARM)
Try that in debug; with, and without, a parameter.