Предложение Where работает с необработанным содержимым строк, поэтому вы фильтруете набор данных, который оценивается для предложения select
WHERE SUBSTR(TO_CHAR(DEPARTMENT_ID),1,1)<>'5'
не выбирайте строки с помощью
SUBSTR(TO_CHAR(DEPARTMENT_ID),1,1)='5'
поэтому эти строки не используются для
SELECT DEPARTMENT_ID, MAX(SALARY) ..GROUP BY DEPARTMENT_ID
ИМЕЮТ работу с результатом выбранного результата, поэтому также должны быть обработаны строки с SUBSTR (TO_CHAR (DEPARTMENT_ID), 1,1) = '5'
в вашем случае всегда выбирается каждое значение для столбца DEPARTMENT_ID, потому что оно упоминается в группе by, а затем оба запроса должны возвращать тот же результат