Under the interpretation that nan values are not less than 0 (they are not greater than 0 either)
output = (value < 0) .* -2 + 1;
output(isnan(value)) = 1;
or
output = (value < 0) .* -1 + (value >= 0) .* 1
output(isnan(value)) = 1;
or
output = (value >= 0) - (value < 0);
output(isnan(value)) = 1;
or
output = sign(value) + (value == 0);
output(isnan(value)) = 1;
If you are certain that the values will never be NaN then you can simplify the code.