Especificar las columnas en su consulta debería funcionar:
select a.col1, b.col2, a.col3, b.col4, a.category_id
from items_a a, items_b b
where a.category_id = b.category_id
debería hacer el truco con respecto a elegir las columnas que desea.
Para sortear el hecho de que algunos datos solo están en items_a y algunos datos solo en items_b, podría hacer lo siguiente:
select
coalesce(a.col1, b.col1) as col1,
coalesce(a.col2, b.col2) as col2,
coalesce(a.col3, b.col3) as col3,
a.category_id
from items_a a, items_b b
where a.category_id = b.category_id
La función coalesce devolverá el primer valor no nulo, por lo que para cada fila si col1 no es nulo, lo usará, de lo contrario obtendrá el valor de col2, etc.