He's in jail for perjury, for lying in court under oath, for Trump. This is his second sentence, and second time period served in prison for Trump, by Alan Weisselberg.
Trump has a severance agreement with Weisselberg, of which $800,000.000 is still not paid. The severance pay, basically requires him to not give law enforcement any information on Trump that could hurt Trump. He's served a prison sentence twice for Trump by perjuring himself in court, so imo, no one could believe him if he did testify.
And the third reason is that Weisselberg was also part of this crime of falsifying records, of which the court has evidence of his hand written notes showing how they were going to falsify their records to cover-up their reimbursement to Cohen for the Stormy Daniel $130,000 hush money he paid upfront for Trump, so Weisselberg's lawyers would insist that Weisselberg plead the 5th.