A 1x0 cell array is an empty array. isempty will return true for that, so your test is valid.
>> c = cell(1, 0);
>> isempty(c)
ans =
logical
1
If at the moment, you're not detecting 1x0 cell array as empty is because you're not testing what you say you're testing or your cell array is not as you say. Either way, show us the actual code you're using and the exact content of the cell array.
Note that:
and
test two completely different things. The first one checks if the cell array is empty. The second one assumes the cell array is not empty and checks if whatever is in the first cell of the array is empty.
Note2: the == 1 in your if expression is pointless. the output of isempty(x) == 1 is exactly the same as the output of isempty(x).