Eu não acho que você pode. Afinal de contas, usar a opção de download recursivo -r basicamente pede ao wget para procurar por links (em -l levels), e links são encontrados somente em arquivos html. Portanto, o wget precisa fazer o download e analisar os arquivos html, procurando links para mais arquivos html e arquivos mp3.
Se você já criou uma lista de links, por que você não usa apenas fgrep ".mp3" para criar uma nova lista com apenas arquivos mp3, e usa isso como link_source_file para wget? Como o wget não baixará nenhum arquivo html, ele não encontrará mais links, então você pode soltar o -r -l e provavelmente algumas outras opções também - apenas mantenha -i (e -A , embora a lista já seja apenas contém apenas arquivos mp3). Use a opção -x para forçar a criação de uma hierarquia de arquivos, mesmo sem -r .
Em suma, se você quiser percorrer um site recursivamente, você deve permitir que o wget baixe e analise arquivos html, mesmo que não os mantenha.
Uma alternativa seria usar o wget para baixar apenas alguns níveis de arquivos html. Em seguida, colha os links desses arquivos manualmente e crie uma lista com todos os arquivos mp3 que você encontrou (lynx, sed e fgrep seriam de grande ajuda para isso). Ou se você souber algo sobre a organização do site, gere uma lista dos arquivos desejados de alguma outra forma (por exemplo, usando um shellscript para criar uma lista com linhas como:
http://www.sagar.com/1/song.mp3
http://www.sagar.com/2/song.mp3
http://www.sagar.com/3/song.mp3
http://www.sagar.com/100/song.mp3