your second Geometry is an invalid one (the two members of the
MultiPolygon are mutually intersecting)
this causes ST_Intersection(g1, g2) to fail returning NULL, and
any further step will consequently give inconsistent results.
counterproof:
SELECT
ST_IsValid(ST_GeomFromText('MULTIPOLYGON(((0 0, 0 2, 2 2, 2 0, 0 0)),
((3 1,1 1,1 3, 3 1)))'));
--------------------
0
just applying a little shift so to avoid this issue gives the
expected result:
SELECT
ST_Overlaps(ST_GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'),
ST_GeomFromText('MULTIPOLYGON(((0 0, 0 2, 2 2, 2 0, 0 0)),((13 1,11
1,11 3, 13 1)))')),
ST_Overlaps(ST_GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'),
ST_GeomFromText('MULTIPOLYGON(((0 0, 0 2, 2 2, 2 0, 0 0)))'));
------------------------
0, 0
Merry Christmas,
Sandro