fixes #3133 - fix security group filtering when no groups need filtering

"[compact!] returns nil if no changes were made, otherwise returns the array"
http://www.ruby-doc.org/core-2.0.0/Array.html#method-i-compact-21

Hence if there are no VPC groups (vpc_id are all nil), the security_groups array is unfiltered, and the method returned nil rather than all the non-VPC security groups.