When working with definition queries, ArcGIS clients simply pass the conditions through to the data store tier, e.g., file geodatabase, SQL Server, Oracle, Postgres, etc.... As far as I know, Esri does not place a limit, per se, on the string containing a definition query. So, the answer really depends on what back-end data store you are working with in ArcGIS. Oracle is commonly believed to limit IN clauses to 1,000 items, and Microsoft uses the open-ended language "many thousands of values." I don't think Esri has formally stated the limit for file geodatabases, but it is quite large, thousands if not tens of thousands.
Beyond some limit that you may or may not hit in the future, large IN clauses are not very efficient in terms of execution plans. If you are working with thousands of values in an IN clause, there is likely a much better performing approach to selecting/filtering the records.