Just use isnan() to remove points with a nan in them. Why not? That's how everyone would do it. Why not you? What's the reluctance to do that???
nanRows = any(isnan(xy), 2); % xy is N rows by 2 columns.
xy(nanRows, :) = [];
vertexIndices = convhull(xy(:, 1), xy(:, 2));
xHull = xy(vertexIndices, 1);
yHull = xy(vertexIndices, 2);
