Causality is not so much a characteristic of a signal as it is a characteristic of a system. For example, a non-causal system can have an output at time $t$ which depends on the input at time $t+1$. When thinking in terms of time, a non-causal system breaks our intuition because it has to "see the future" in order to operate.
Let's say that I want to create an audio effect that is a sort of "reverse echo." In other words, I want to hear an echo of the sound before the sound event actually occurs. This would be an example of non-causal processing because at any given time, the output depends on input which has not yet occurred. This is not a problem in the case of a recorded audio signal because we already have all of the time samples available to us, so we can "look ahead" and use this "future information" right now.
But what if I wanted to implement this "reverse echo" effect in a live performance? I obviously can't "look ahead" to grab samples out of the future, but I can wait until all of the samples I need are available to me, and then apply the processing. This would produce the exact same output signal as if I had done the non-causal processing mentioned above, but with one significant difference: my output would be delayed.
Given a signal $y$ which depends on input $x$ as
$$y[n] = a_2 x[n-1] + a_1 x[n] + a_0 x[n+1]$$
we can make a causal version of $y$, which we will call $y^\prime$, by simply delaying $y$ by one time step:
$$y^\prime[n] = y[n-1] = a_2 x[n-2] + a_1 x[n-1] + a_0 x[n]$$
We have not altered the signal in any way, besides to shift its time indexing. Any shift in phase can be seen as a direct result of the delay, and cannot be reversed by multiplying some phase term.