Het lijkt erop dat je een left join wilt hebben :
select a.id, b.idcategory, b.value
from a left join
b
on b.id = a.id and b.idcategory = 1;
De value kolom heeft NULL in plaats van 'no value' . Je kunt vervang het, maar NULL dient meestal dat doel.