Boolean difference removes wrong part
The Boolean modifier calculations depends on the face normals to decide what's inside and outside ; for a simple plane case the face normal is the local z_axis so it's enough to flip the plane 180° 

for other case :


enter edit mode hit Ctrl+N 
check inside option on the tools panel