Singleton class and correct way to access it in C++
Thread safety
Accessing the singleton is thread-safe. The change in C++11 has forced compilers to implement the construction of local static variables (like INSTANCE) in a thread-safe manner.
Note, however, that this doesn't make Singleton thread-safe under all circumstances: If multiple threads are calling Singleton::Test, I wouldn't be surprised to see some garbled output, as access to std::cout isn't synchronized.
Correctness
The current implementation violates the rule of 5: It has a custom destructor, but no custom copy and move constructors and assignment operators. And, to prevent making a copy of the singleton instance (or moving from it!), these 4 special functions should be deleted, like so:
public:
    Singleton(const Singleton&amp;) = delete;
    Singleton(Singleton&amp;&amp;) = delete;
    Singleton&amp; operator=(const Singleton&amp;) = delete;
    Singleton&amp; operator=(Singleton&amp;&amp;) = delete;

Note the public specifier, this ensures that these deletions are visible everywhere needed.
Access
While taking a pointer from the reference returned by Singleton::instance() is a valid use, it seems unnecessary in MyFunction as the pointer isn't required. Why not simply capture by a reference, like so:
auto&amp; MySingleton = Singleton::instance();
MySingleton.Test();

Or if only one call is done:
Singleton::instance().Test();