This kind of JOIN is not optimizable to a HASH JOIN or a MERGE JOIN.
It can be expressed as a concatenation of two resultsets:
SELECT *
FROM maintable m
JOIN othertable o
ON o.parentId = m.id
UNION
SELECT *
FROM maintable m
JOIN othertable o
ON o.id = m.parentId
, each of them being an equijoin, however, SQL Server‘s optimizer is not smart enough to see it in the query you wrote (though they are logically equivalent).