Working with user input and dictionaries inside of lists
You should put all code that isn't in a function in a if __name__ == '__main__' guard. So that it doesn't run when it shouldn't.
You can simplify quitting by using exceptions. If you make a function that raises say KeyboardInterupt if the input is 'q' then you can reduce the amount of code needed.
I like to not use variables when they're not needed, or increase readability, and so you may want to move riven straight into the creation of differents.
You can use f-strings or str.format to build your prints for you: 

&gt;&gt;&gt; i = {'title': 'title', 'album': 'album'}
&gt;&gt;&gt; i['title'] + ' by ' + i['album']
'title by album'
&gt;&gt;&gt; "{i[title]} by {i[album]}".format(i=i)
'title by album'
# Python 3.6+
&gt;&gt;&gt; f"{i['title']} by {i['album']}"
'title by album'

You can simplify make_album by using dictionary sugar:

def make_album(artist, album, tracks =''):
    return {
        'artist_name': artist,
        'album_title': album,
        'tracks': tracks
    }

You can alturnatly use collections.namedtuple:

# Python 3.7
Album = collections.namedtuple('Album', 'artist album tracks', defaults=('',))

# Otherwise
Album = collections.namedtuple('Album', 'artist album tracks')


def make_album(artist, album, tracks=''):
    return Album(artist, album, tracks)

I'd create a couple more functions. But honestly your code is pretty great. Half my suggestions I wouldn't expect a beginner to use.




import collections

Album = collections.namedtuple('Album', 'artist album tracks', defaults=('',))


def ask_user(message):
    user_input = None
    while not user_input:
        user_input = input(message)
    return user_input


def check_quit(user_input):
    if user_input == 'q':
        raise KeyboardInterupt()
    return user_input


def get_additional_albums():
    albums = []
    try:
        print("type q to quit")
        while True:
            albums.append(Album(
                cheack_quit(ask_user("Enter artist: ")).title(),
                cheack_quit(ask_user("Enter album: ")).title(),
                cheack_quit(input("Enter number of tracks: "))
            ))
    except KeyboardInterupt:
        pass
    return albums


if __name__ == '__main__':
    differents = [
        Album('Zeppelin', 'Houses of the Holy', 8),
        Album('Tool', 'Lateralus', 13),
        Album('Pink Floyd', 'Dark Side of the Moon')
    ]
    differents += get_additional_albums()

    for i in differents:
        output = f'{i.title} by {i.album}'
        if i.tracks:
            output = f'{output} it has {i.tracks} tracks'
        print(f'\n{output}.')