Du vergisst bei SQL noch die Umwandlung in deine Ziel-CCSID (hier Codepage).
Dein SQL-Job läuft mit der CCSID der Sprache deines angemeldeten Users bzw. des Systems.
Im Zweifel also 273 (DSPJOB QZDASOINIT)!
Du castest also 2 x, 1. in Hex, 2. in 870. Soweit so gut.
Da dein ODBC aber in einer ANSI-Umgebung läuft muss ja nun von 870 in (z.B.) 1252 gewandelt werden. Da deine Daten aber in 870 sind, dein Job aber 273, wird nun von 273 nach 1252 gewandelt.
Dazu wandelt nun SQL vorher von 870 in 273. Da hier der Zwischenschritt über 65535 fehlt, erfolgt nun die Codeverschiebung!

Du benötigst ganz einfach einen 3. (outer) Cast in UCS2:
cast( as vargraphic(nn) ccsid 13488)

Dann erhältst du in deinem PHP direkt den Unicode-String.
Alternativ kannst du auch in varchar(nn * 2) ccsid 1208 in UTF-8 umwandeln.