Я сделал пример кода для вашего кода и работает нормально
List<String> list = Arrays.asList("AN", "BL", "CL", "DO", "AK", "LL", "BO", "DL");
Observable.fromIterable(list).groupBy(x -> x.charAt(0))
.flatMapSingle(x -> x.toList())
.subscribe(x -> System.out.println(x));
Вывод следующим образом:
[AN, AK]
[BL, BO]
[CL]
[DO, DL]
[LL]
Почему бы не переопределить onError (), чтобы увидеть, есть ли ошибка