Generally, you have the two options you mention, both are valid, and you need to see which one is more appropriate to your experiment

I will start with words instead of exact math.

1. Two tails

H0: the medicine doesn't influence.

H1: the medicine do influence,

2. One Tail:

H0: the medicine doesn't influence

H1: the medicine reducing headaches

In option 1, H1 the medicine may also increase the headaches. But we are not interested in this option. we don't really care if the medicine doesn't reduce the headaches or only not influence, in both cases we won't take it.

H0: p<=0.5

H1: p>0.5

This is the right tail, and p-value is p(z>Z) = 1- P(z<Z)

you reject H0 if p-value<0.05

After you solve it you need to do a sanity check, for example, if p=0.8 instead of 0.6 is is more likely the medicine works, so you should get a smaller p-value