Content of returned array depends on a method of obtaining property list. If it was taken from a DataModel object by using StorableObject.Properties member from StorableObject then it will contain ids from all existing properties (on this object). If the property was taken from an offline property list (i.e. without a parent assigned), then it returns an array of ids which have corresponding non-empty values stored in this property list.