Hide zero hours and minutes with NLS_DATE_FORMAT
No, it can not be done, because 00:00 is a valid time. That you use it to represent "no time available" in your application is your own decision and you have to take care of the consequences yourself. 

You could store date and time in separate columns and show only the date if the time is NULL.