Hey Mantas,
Are you testing by connecting your "own" account to your application? (As in, the same account that owns the application?). If so, this can cause some confusion in testing.
Essentially there are 2 different Webhook endpoints:
1) your merchant Webhook endpoint, set in the Webhooks pane in the dashboard. This gets events for your merchant itself, and never gets user ids in payloads (because it's all from the same user)
2) your connect application Webhook endpoint, set on the Application settings page. This gets events on behalf of your connected users, and does get user_id in the payload so that you can differentiate.
So it sounds like what may be happening here is that you're actually looking at Webhooks being sent to your merchant Webhook endpoint, hence the lack of user_id in the payload.
Sorry that we don't make this all clearer!
Jim