Fabio,
It's not a bug.
Quoting from help:
If you omit cPadCharacter, spaces (ASCII character 32) are used for padding.If you want padr() to pad with something besides spaces give it the third argument. This works as I'd expect it to.
? VARTYPE(PADR(0H,1,0h00)),ASC(PADR(0H,1,0h00))
>Expected:
>PADR(0h) return a VARBINARY value,
>then the default padding value, for a varbinary, must to be 0h00.
>
>
>? VARTYPE(PADR(0H,1)),ASC(PADR(0H,1))
>