Recuerda que cuando se lee un archivo, se recorre linea por linea, hasta llegar a la ultima que esta vacía!... Entonces si pasas un objeto vacío, y haces len(objeto) - 1, entonces ahí cae el error, porque estarías en -1 de un string vacío, que si estuvieses un string -1 seria el ultimo elemento. Pero en algo vacío no hay elementos por eso tienes el error.
 
Debes verificar primero si la linea esta vacía.    
Código Python:
Ver originalpsu=open("psu.txt","r")
    resul=open("resultados.txt","w")
    def revisar(x, y):
        n = 0
        for i in range(len(x) -1):
            if x[i] == y[i]:
                n += 1
        return n
     
    maxResultado=0
    minResultado=0
     
    p1l=psu.readline()[20:]
    while True:
        linea=psu.readline()[20:]
        if not linea:
            break
        print revisar(p1l,linea)
  
Nunca verifiques if a == "", mejor usa if not a, para todo lo que sea false, vacío o 0. 
Saludos!  
PD: Antes de empezar a programar debes leerte un libro o tutorial, no comenzar a darte golpes sin leer lo suficiente.