Your whole question makes sense, except for:
because it is sparse in usual usage is useless
Therefore, I will try to answer this from different angles.
Implementation of sparse matrix
A sparse matrix is not useless because many packages contain algorithms that accept a sparse matrix as input.
You can look at Sklearn's SVMs as an example.
You need a special implementation to deal with sparse matrix because they are stored differently from a normal matrix. However, as mentioned in the comments by @Majid Mortazavi you can follow this answer to convert your sparse matrix to a normal one and use any other implementations out there. You just need to be careful with your RAM usage.
Theoretical application of sparse matrix
A sparse matrix is not useless because many fields in machine learning make use of sparse features.
You can look at NLP as an example. A common feature used in text categorization is TF-IDF which is a sparse representation of a document.
Since the data is sparse, it is often enough to use linear models for classification, since most of the features for a data point will be $0$. This can be considered a good thing because they are easier and faster to compute and no polynomial kernels are needed.
Solving your challenge
You also mentioned PCA for dimensionality reduction but I don't understand why you would need it at this points. Seems like you are creating a sparse matrix to encode a categorical feature.
Maybe, instead of reducing your sparse matrix, you can have a look at better ways to deal with categorical features.