Как правильнее переопределить метод родительского класса?
Что именно вам не понятно в фразе Declaration of User::isExists() should be compatible with that of GlobalClass::isExists() 
Ее можно трактовать как
определение метода User::isExists() не должно отличаться от GlobalClass::isExists()
то есть вы ломаете интерфейс, ваш метод у класса наследника делает явно что-то не то, что от него требуется.
Учите принципы ООП и GRASP (можно по видио лекциям, тут нужно что бы объяснял кто-то).
Если есть необязательные параметры или претенденты на это звание, то размещать их нужно справа. Тогда можно использовать такой вариант:abstract class GlobalClass {
    ...
    protected function isExists($value, $field) {
        return $this->db->isExists($this->table_name, $field, $value);
    }
}
...
class User extends GlobalClass {
    ...
    public function isExists($value, $field=null) {
        $field = 'login';
        return parent::isExists($value, $field);
    }
}
Менять порядок обязательных параметров слева не стоит. Если он у родителя первый, то и у потомка должен быть первым.
И судя по  public function isExists($login) {
		return $this->isExists("login", $login);
	} следующей ошибкой будет Maximum function nesting level. Используйте parent.