add_query_arg not working

If you take a look where the category_link hook is defined in category-template.php you’ll see this particular hook passes on two variables. The second variable is the category ID, but your callback function treats that second incoming variable as a query object.

Simply put, you’re looking for a query_vars property/key that does not and cannot exist, because the incoming variable is not a query object.