O
SUBSTRING
documentação
não é particularmente claro sobre como trata valores binários, referindo-se a 'caracteres' em vez de bytes. Mas está efetivamente tratando a entrada como uma sequência de bytes e com 1, 1
você está pedindo o primeiro byte da sequência:Input Byte sequence
----------------------
0x6 06
0xF6 F6
0xFF6 0F F6
0xFFF6 FF F6
Saída de
SUBSTRING(input, 1, 1)
:0x06
0xF6
0x0F
0xFF