Sub queries can only be used in SQL statements. Since this case statement is in PL/SQL not regular SQL, you cannot do it.
Either select the id into another variable or somehow join the selects into a single select statement ot return the desired type_id.
What does the following return:
SELECT WAVELENGTH_TYPE_ID
INTO P_WAVELENGTH_TYPE_ID
FROM LAYER1_WAVELENGTH_TYPE
WHERE WAVELENGHT_TYPE_NAME = TDP_LOAD_SUMMARY_REC.Customer and
TDP_LOAD_SUMMARY_REC.Customer IN
('CNI-CD',
'CNI-00',
'CNI-TC',
'CNI-M',
'CNI-RH',
'CNI-XC',
'CNI-NP',
'CNI-RT')
and
P_PROGRAM_ID IN (SELECT PROGRAM_ID FROM LAYER1_PROGRAM WHERE PROGRAM = 'MSP/DMX');