Vous semblez vouloir une left join :
select a.id, b.idcategory, b.value
from a left join
b
on b.id = a.id and b.idcategory = 1;
La value la colonne a NULL plutôt que 'no value' . Vous pouvez remplacez-le, mais NULL sert généralement à cette fin.