The conversion of year 1 in the update works:
select TO_TIMESTAMP (
'01-JAN-0001 05:00:00:000000',
'DD-Mon-YYYY HH24:MI:SS:FF'
)
from dual;
TO_TIMESTAMP('01-JAN-000105:0
-----------------------------
01/01/0001 05:00:00.000000000
I'm guessing eff_dt_start a date rather than timestamp, so you have an implicit conversion which is the real source of the error. Try setting it to a date instead.
As the query says, year 0 is invalid in Oracle Database. This doesn't exist in the Gregorian calendar which goes from 31 Dec 1 BC -> 1 Jan 1 AD:
alter session set nls_date_format = 'DD MON YYYY BC';
select
to_date ( '31-Dec-0001 BC', 'DD-MON-YYYY BC') bc,
to_date ( '31-Dec-0001 BC', 'DD-MON-YYYY BC') + 1 ad
from dual
BC AD
-------------- --------------
31 DEC 0001 BC 01 JAN 0001 AD