Ah, so what you want to use if the List function. The list function separates a list of text phrases with a delimiter that you set, but is smart enough not to add the separator of there is nothing to separate.
So you want your separator to be "; "
List("; ",
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),
etc
) // close the List ( open bracket)