Вы ищете оператор IN
для сравнения одного значения со списком значений. Ваш текущий код проверяет, является ли "433"
True или False. Поскольку оно не пустое, оно рассматривается как True.
Вы хотите:
if substr(icd(i),1,3) in ("433" "434") then flag_icd(i)=1;
Или для устранения пропущенных значений просто присвойте результат теста переменной и получите либо 1 (true) или 0 (false).
flag_icd(i) = substr(icd(i),1,3) in ("433" "434") ;