Empty array typically means there are no matching events/other data, empty/null elements can occur in many API responses.
You need to precisely define what you mean by "connected" and "disconnected", in the terms exposed by the available APIs and how wifi association/authentication work.
I.e. if a client moves out of range, there's no "disconnect me' event, it simply is no longer seen, but disconnection can still be inferred from the absence of information based upon some rules about things like when it was last seen.
The scanning API is used by commercial applications to determine client connect/other metrics (and at massive scale.)
In very simple outline, how the scanning API can be used...
detect a client not currently in list of connected clients, add it, set the 'first seen' timestamp
detect one that is already in the list, update the 'last seen' timestamp
periodically, go through the list, if the 'last seen' is too long ago, call it disconnected
There needs to be additional book-keeping to record/consolidate multiple sessions, but you see the basic idea.
This a very simplistic approach, in practice you'd also fuse with other data to refine results, such as RSSI, location, any authentication service info, data usage etc..