"I (will) meet a friend."
The particle に serves as an object particle, as in the example here, where "ともだち" is the object of the verb "あう." Essentially, に indicates the person or thing an action is directed. So now, if it is, you probably think why you can't say, "ともだちを あう。", don't you?
Here is another example:
「ともだちに Eメールを おくる。」
"I (will) send a friend an e-mail."
With the verb like "Eメールを おくる。[I (will) send an e-mail.]", に indicates the receiver of the action. In English, the receiver corresponds to the indirect object.
To sum up, I could literally translate those sentences to English "I (will) meet to a friend." and "I (will) send an e-mail to a friend."
"I (will) sing together."
The particle に of the word "いっしょに" indicates the verb (also behavior) "うたう" for showing how it is done. This usage of the word "いっしょに" is the same as "ゆっくり(slowly)" like "ゆっくり うたう。[I (will) sing slowly.]", "はやく(quickly)" like "はやく うたう。(I [will] sing quickly.)" and so on. I think this に is, so to speak, "an adverbial particle" in this case.
I'm sorry for my English, but do you understand? Does it make sense to you?
If you have more questions, feel free to ask me.