Вы не можете использовать псевдоним столбца в предложении where. Вы можете просто использовать это:
select A.*
from my_table1 A
where exists(select distinct id ,date1 +integer '30' as cal_date
from my_table1
where id=A.id
and (date1 = A.date1)
or (date1 < A.date1 and A.date1 >= '30'));
Редактировать: Исправлена цитата символов