Lo spazio iniziale extra è per il potenziale segno meno. Per rimuovere lo spazio puoi usare FM nel formato:
SQL> select to_char(12,'FM000') from dual;
TO_C
----
012
A proposito, nota che to_char accetta un argomento NUMBER; to_char('012') è implicitamente convertito in to_char(to_number('012')) =to_char(12)