Not the best solution according to the data amount, i.e. 19 thousands features. But perhaps you are working with a database.
In terms of QGIS I can suggest using a Virtual Layer through Layer > Add Layer > Add/Edit Virtual Layer...
With the following query, it is possible to achieve the result, i.e. to find the users which most often meet in this column. Only users that are met more than 50.
SELECT p."USER_ID", COUNT() AS "count"
FROM "points_layer" AS p
GROUP BY p."USER_ID"
HAVING COUNT() > 50
Or if you want to categorize only 50 most frequent values of a column that use this query
SELECT p."USER_ID", COUNT() AS "count"
FROM "points_layer" AS p
GROUP BY p."USER_ID"
ORDER BY COUNT() DESC
LIMIT 50
Note: The result will not maintain the geometry of the original point layer.
If you wish to maintain geometry of your point layer it is important to understand whether your users with same id share the same location. Nevertheless, when the geometry has to be kept, please extend the query with p.geometry
SELECT p."USER_ID", COUNT() AS "count", p.geometry
FROM "points_layer" AS p
GROUP BY p."USER_ID"
HAVING COUNT() > 50