Вопрос, кстати, не снят по поводу первого запроса...
что касается смысла самого запроса, то
.des. правильно говорит о том что этого лучше не хотеть, не знаток в различных субд, но afaik postgres, mssql, oracle такой запрос не дадут выполнить. Mysql разрешает пока, но может в 6-ой версии сделают по умолчанию sql_mode=ONLY_FULL_GROUP_BY, как например и register_globals=off в php.
Если рассуждать почему не используется индекс.
Имхо, запрос предполагает чтение полностью всех данных таблицы. При использовании индекса - чтение данных будет происходить в случайном порядке (в порядке записей в индексе) и это чревато большим количеством операций IO (самое тормозное место обычно) по сравнению c последовательным чтением. Группировка 2.5K елементов в памяти вещь менее тормозная чем чтение этих данных с диска.
Хотя mysql мог бы делать и оптимизацию: сравнивать селективность индекса с общим количеством рядов, и если групп в разы меньше, то идти по индексу, читая только по одной строке данных (конечно будет считана не строка, а блок в N килобайт) для группы, всё равно не важно какие данные в этом случае

Но это всё лишь мои предположения.
Заставить использовать индекс можно с помощью force index(`index_name`)
[update]
выполнил несколько запросов на различных табличках,
запросы select * from `table`group by `field`, именно такой запрос понимается под "без force index".
На `field` во всех случаях был ключ.
Для проверки скорости с index сканом и без, форсировался индекс если explain говорил all или ignore index , если type=index:
1. таблица myisam ~700K записей, cardinality: 40000, Row_format=fixed.
a) без force index
time: 2 sec
explain: type=ALL; Using temporary; Using filesort
б) с force index()
time: 5.5 sec
explain: type=index
2. таблица myisam, 4M записей, cardinality: 20000, Row_format=fixed
a) без force index
time: 2 min 52 sec
explain: type=ALL, Using temporary, Using filesort
(добавление order by null и исчезновение Using filesort на скорость никак не влияло).
б) c force index
time: 56 sec
explain: type=index
3. таблица innodb, структура и данные аналогичные пункту 2
a) без force index
time: 1 min 13 sec
explain: type=index
б) c ignore index (чтоб был скан без индекса)
time: 3 min 35 sec
explain: type=ALL, Using temporary, Using filesort
4. запустил такие же тексты на innodb табличках 60K и 500K, всегда mysql предпочитал использовать индекс (и при его использовании запрос выполнялся быстрее) в отличие от myisam, видимо делается предположение что данные могут быть pool_buffer'е.