elseif 'I' is not a comparison, but the expression 'I' is converted to a logical, which means true, because the CHAR value of 'I' is not zero.
Your function is not called "presentAns", in opposite to your description.
The output out is not modified. The meaning of "x1", "x2", ... is unclear.
Guessing like "it falls out of the function" is not useful for programming. Better use the debugger to step through your code line by line. Search in the documentation for instructions about debugging.
Perhaps you want something like this:
function out = presentRes(want, ret)
len = length(want);
out = cell(len, 1);
Msg = num2str(ret(k));
for k = 1:len
switch want(k)
case 'S'
out{k} = [' Your complex power calculation is', Msg,'.'];
case 'p'
out{k} = [' Your real power value is', Msg,'.'];
case 'I'
out{k} = [' Your phase current value is', Msg, '.'];
otherwise
error('Character not handled: %s', want(k));
end
end
fprintf('%s\n', out{:});
But this is guessed boldly. Better explain, what you want to achieve.