Isso funcionaria?
SELECT
T.id
, O.id
, T.shape.STIntersection(O.shape) Intersection
FROM @Table T
INNER JOIN @Table O
ON T.shape.STIntersects(T.shape) = 1
AND T.id > O.id
SELECT
T.id
, O.id
, T.shape.STIntersection(O.shape) Intersection
FROM @Table T
INNER JOIN @Table O
ON T.shape.STIntersects(T.shape) = 1
AND T.id > O.id