I answer myself, I solved this moving the enable_if check from the template parameters list to the constructor and everything works fine, like this:
template <typename T>
class A {
public:
A(std::initializer_list<typename std::enable_if<std::is_arithmetic<T>::value,T>::type> l) {}
class I;
};
template <typename T>
class A<T>::I {
public:
int prova() { return 1; };
};