I have a parameterized job with a label parameter called "MYNODE" that defaults to CENTOS7. If I parameterized trigger it from a freestyle job and pass in a NodeLabel parameter with a different value for MYNODE, the job gets run on a node matching that passed label value. If instead I trigger the job from a workflow, like this:
def nodes = [:]
Then the called job gets executed, and I can see that it has a "MYNODE" parameter with a value of "CENTOS6", but it does not get run on a node matching the passed label value (it runs on a node matching the default label parameter value instead).