I wrote the following python script to find intersections between two layers, and although the two layers have intersections, it returned an empty list.
intersections = []
for a in layer1.getFeatures():
for b in layer2.getFeatures():
if a.geometry.intersects(b.geometry()):
intersection = a.geometry().intersection(b.geometry())
intersections.append(intersection.geometry().area())
The same script returns intersections if I simply try it with different shapefiles.