select
nvl(b.id,1) as id,
alldates.Date as Date,
nvl(b.value,0) as value
from
(select level/1440 + to_date('12/01/2010', 'MM/DD/YYYY') as Date
from dual
connect by level < 1440
) alldates
left join
(select * from table where Id = '1' and Date > to_date('12/01/2010', 'MM/DD/YYYY') b
on alldates.Date = b.Date
UPDATED (response to comment):
select
nvl(b.id,1) as id,
alldates.Date as Date,
nvl(b.value,0) as value,
nvl(b.value, lag(b.value) over (order by b.Date nulls last)) last_valid_value
from
(select level/1440 + to_date('12/01/2010', 'MM/DD/YYYY') as Date
from dual
connect by level < 1440
) alldates
left join
(select * from table where Id = '1' and Date > to_date('12/01/2010', 'MM/DD/YYYY') b
on alldates.Date = b.Date