prueba con esta sentencia, con esta te tiene que funcionar:
Código PHP:
$sql = "SELECT * FROM usuarios WHERE (login = '$login' OR mail = '$mail') AND id_usuario <> $id";
si te fijas he encapsulado las condicionales que estan antes y despues de OR esto me asegura de que busque por: si encuentra un login o un email igual al recibido ademas de eso tiene que ser distinto al ID del usuario.
si no lo encapsulamos puede tomar algo asi como: que el login sea correcto ó el mail sea correcto y el ID usuario sea diferente.