Su problema es que su parámetro de entrada tiene el mismo nombre que su columna, por lo que cuando la consulta ve
WHERE SCOTT.EMP.DEPTNO = deptno
interpreta deptno como SCOTT.EMP.DEPTNO , lo que significa que es cierto para todos los valores de deptno . Cambie el nombre de su parámetro de entrada y la consulta funcionará como se espera.
También debe usar NVL para asegurarse de que el SUM individual los valores no son NULL , como si alguno de ellos fuera NULL eso hará que la suma de ellos NULL también es decir,
select NVL(SUM(SAL), 0) INTO SALSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;
select NVL(SUM(COMM), 0) INTO COMMSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;