The reason you are seeing this behavior is because MATLAB could not create a face given vertices coordinates as "px,py". This is why you are observing no affect by changing the FaceColor.
As an example, check the following code:
r = 1;
theta = 0:pi/100:2*pi;
x = r*cos(theta);
y = r*sin(theta);
p = patch(x,y,1);
set(p ,'FaceColor', 'r')
If you have information about which vertices should be connected to form a face, you should use the patch in the following manner:
v = [0 0; 1 0; 1 1; 0 1];
f = [1 2 3 4];
Here the variable f defines that MATLAB should connect vertices 1->2->3->4 to create a face. Here 2 refers to the second row of variable v and so on.