Here is one method. It uses a correlated subquery in the update
and is very close to how you stated the problem:
update table1 t1
set ValuesExist = (case when exists (select 1
from Table2 t2
where t2.Table1Id = t1.Id and t2.Value > 0
)
then 1 else 0
end);
This will perform best if you have an index on Table2(Table1Id, Value)
.