Pruebe la consulta a continuación, que solo agrega TRUNC() a su columna de fecha antes de tomar un DISTINCT de eso.
select distinct(TRUNC(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;
Esto se debe a que el factor tiempo en los datos de su columna no es el mismo.
TRUNC() anulará el elemento de tiempo, conservando solo la fecha
La consulta realmente lo revelará. TO_CHAR() para generar la fecha guardada en el formato especificado.
select TO_CHAR(MY_DATE,'MM-DD-YYYY HH24:MI:SS') from MY_TABLE where extract(year from MY_DATE) = 2014;
Más sobre TRUNC de Oracle Docs