A non-leaf node is called an internal node. Some trees only store data in internal nodes, though this affects the dynamics of storing data in the tree. For example, with empty leaves, one can store an empty tree with a single leaf node. However with leaves that can store data, it is impossible to store an empty tree unless one stores some kind of marker data in the leaf that signifies that the leaf is to be empty (and thus the tree to be empty as well).
Conversely, some trees only store data in the leaf nodes, and use the internal nodes to hold other metadata, such as the range of values in the subtree rooted at that node. This type of tree is useful for range queries.