The standard defines a string literal\'s type, in §2.13.5/8, as:
Ordinary string literals and UTF-8 string literals are also referred to as narrow str
You have to remove the reference first, since the type deduced by decltype is const char (&)[N], not just const char [N]:
decltype
const char (&)[N]
const char [N]
std::cout << std::boolalpha << std::is_array< typename std::remove_reference::type >::value << '\n'; // true