Так как вы хотите специализировать параметры шаблона класса, то придётся специализировать весь класс:
template <typename Node, typename DataType>
class List
{
  Node *head, *tail;
  int count;
public:
  // ...
  void AddHead(DataType data);
};
template <typename Node>
class List<Node, Storage_device*>
{
  using DataType = Storage_device*;
  Node *head, *tail;
  int count;
public:
  // ...
  void AddHead(DataType data);
};
Теперь для этой специализации класса получится определить AddHead, как у вас.
Можно обойтись без специализации всего класса, искусственно добавив шаблон в функцию:
template<typename = std::enable_if<std::is_same<DataType, Storage_device*>>::type>
void AddHead(DataType data);  // specialized version
template<typename = std::enable_if<!std::is_same<DataType, Storage_device*>>::type>
void AddHead(DataType data);  // general version
Правда, я давно не использовал std::enable_if, не гарантирую, что это работает.
template<typename Node, typename DataType>
class List {
    //...
public:
    template<typename = std::enable_if<std::is_same<DataType, Storage_device*>>::type>
    void AddHead(DataType data);
    template<typename = std::enable_if<!std::is_same<DataType, Storage_device*>>::type>
    void AddHead(DataType data);
};
template<typename Node, typename DataType>
template<typename = std::enable_if<std::is_same<DataType, Storage_device*>>::type>
void List<Node, DataType>::AddHead(DataType data);
template<typename Node, typename DataType>
template<typename = std::enable_if<!std::is_same<DataType, Storage_device*>>::type>
void List<Node, DataType>::AddHead(DataType data);