El código que escribiste cuenta el número de polígonos que son disjuntos de cada punto, así que asumiendo que los puntos están en un solo polígono, puedes esperar encontrar un conteo de number of points * (number of polygons -1 )
.
Si lo que quieres es contar el número de puntos que están desunidos de toda la capa, es decir, de TODOS los polígonos, tendrías que hacer lo contrario: descartar cualquier punto que intersecte al menos un polígono, y registrar los que no intersecten ningún polígono. Usando tu código, se podría modificar a lo siguiente. Ten en cuenta que probablemente haya otras formas (mejores) de hacerlo en toda la capa directamente.
legend=iface.legendInterface()
layers=legend.layers()
layer1=layers[0]
layer2=layers[2]
pointCounter=0
for pointFeat in layer1.getFeatures():
pointGeom=pointFeat.geometry()
intersected = False #reset the boolean flag
for polyFeat in layer2.getFeatures():
polyGeom=polyFeat.geometry()
if pointGeom.intersects(polyGeom):
intersected = True #point and polygon do intersect
break #no need to check other polygons
#Now that every polygons have been tested, deduct if the point is disjointed or not
if intersected == False
layers[0].select(pointGeom.id())
pointCounter=pointCounter+1
print pointCounter