Non-balanced binary tree

That definition of a binary tree is a full binary tree, which is

"a tree in which every node has either 0 or 2 children."

It would have been clearer if the type had been named more explicitly:

data FullBinaryTree a = Leaf a | Node (FullBinaryTree a) a (FullBinaryTree a)

It's a thing, but often you see another definition of a binary tree that allows for empty nodes as well, as you suggest. The empty node is, however, typically named Empty:

data BinaryTree a = Empty | Node (BinaryTree a) a (BinaryTree a) deriving (Eq, Show)

Both are mathematically valid binary trees, but are obviously not the same. With BinaryTree you can create trees with zero, two, four, etc. values:

Prelude> Empty
Empty
Prelude> Node Empty 42 $ Node Empty 1337 Empty
Node Empty 42 (Node Empty 1337 Empty)
Prelude> Node Empty 42 $ Node (Node Empty 1337 Empty) 2112 (Node Empty 91235 Empty)
Node Empty 42 (Node (Node Empty 1337 Empty) 2112 (Node Empty 91235 Empty))

Your original definition only allow trees wit odd numbers of elements.

You can fix it with

data Tree a = Empty | Node (Tree a) a (Tree a)

or you can store elements only in leafs

data Tree a = Leaf a | Node (Tree a) (Tree a)