Efficiently querying a very large MySQL table with C#
Workbench tacks on a LIMIT clause.  And, since you have the perfect index for such, it stops short.

How many rows are you expecting?  What will you do with that many rows?

It is probably possible for a C# client to configure the connection show that the rows will be delivered as they are found, thereby showing you some output before it timesout.  Such is rarely used because delivering giant resultsets is rarely practical.