Maybe this:
var Text QTA = Part(UserListToNames([Quality Team]), 1, ";");
var Text QTB = Part(UserListToNames([Quality Team]), 2, ";");
var Text QTC = Part(UserListToNames([Quality Team]), 3, ";");
var Text QTD = Part(UserListToNames([Quality Team]), 4, ";");
If (not Contains([Quality Approval], $QTA & "] Approved")
and
not Contains([Quality Approval], $QTA & "] Rejected")
, $QTA) &
If (not Contains([Quality Approval], $QTB & "] Approved")
and
not Contains([Quality Approval], $QTB & "] Rejected")
, $QTB) &
If (not Contains([Quality Approval], $QTC & "] Approved")
and
not Contains([Quality Approval], $QTC & "] Rejected")
, $QTC) &
If (not Contains([Quality Approval], $QTD & "] Approved")
and
not Contains([Quality Approval], $QTD & "] Rejected")
, $QTD)
But at some point writing formula this long becomes ridiculous.