you've just shot yourself in the foot. its called implicit datatype conversion.
there is no TO_DATE(date)
(which is what you're asking for) , so oracle has converted your query to TO_DATE(TO_CHAR(sysdate), 'DD MONTH YYYY')
where TO_CHAR(sysdate)
will pick up the default NLS format mask. depending on your default mask (see NLS_SESSION_PARAMETERS), your 1st may have resolved to the year 0012 and the 2nd to the year 0018. so 0012 is less than 0018.
if you want to truncate the sysdate, then just do trunc(sysdate)