// Konstruktor tabeli
private Workout(String name, String description){ this.name = name; this.description = description; }
Nie, to nie jest konstruktor tabeli - to jest konstruktor obiektu klasy Workout. To, że masz metodę statyczną w klasie Workout, która zwraca tablice nie znaczy, że konstruktor tej klasy to konstruktor tablicy.
Czy to jest błędem? Nie, ale prawdopodobnie to i nadpisanie metody toString() pokazuje, że gdzieś wywołujesz coś na kształt:
System.out.println(Workout.workouts())
co wcale nie wywołuje metody toString() Workout, tylko klasy Object, która domyślnie wykorzystuje hashCode do tworzenia toString (stąd te cyfry).
getClass().getName() + '@' + Integer.toHexString(hashCode())
Stąd, żeby wypisać zawartość tablicy w miarę normalny sposób (tzn wykorzystując toString() obiektów tablicy) musisz albo wywołać tą metodę na każdym z obiektów ręcznie (np pętlą foreach) albo skorzystać z gotowej metody Arrays.toString(array).