intanto i numeri esadecimali normalmente si rappresentano con 0xNN e non con \xNN.

poi tu vuoi che ti restituisca "\x00\x1c\x27" al posto di "001c27. Sono entrambe stringhe (non capisco che tipo di dato dovrebbe essere secondo te una "successione di numeri"), quindi non vedo il problema. Fai $string. = '\x'.$str nel tuo codice e otterrai una stringa "\x00\x1c\x27"