Only the type is specified by the template parameter. The constructor (1) is needed to provide instances of the types specified for use in the hashtable. The instances themselves can be classes that have their own data members and have been created with a non-trivial construction.
The implementer of the class chose not to provide a default constructor. This allows a user to implement hash and equality comparison operations that are not default constructable, that is, the classes can have non-trivial state for which there isn't a good default value that would be used by the default constructor.
You've noted that constructor (2) uses a default construction of ExtractKey, but still allows the hash and equality comparator to be non-default constructable.